package com.jctrip.hotel.source.model.elong.resp.offline;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * @Author: zxy
 * @CreateTime: 2023-09-22 10:40
 * @Description:
 */
@Data
public class ElongQueryIncrOrderResp implements Serializable {
    @JsonProperty(value = "Orders")
    @ApiModelProperty(value = "订单增量")
    private List<Order> orders;

    @ApiModel(value = "Order")
    @Data
    public static class Order implements Serializable {

        @JsonProperty(value = "LastId")
        @ApiModelProperty(value = "增长id")
        private Long lastId;

        @JsonProperty(value = "Time")
        @ApiModelProperty(value = "变化时间")
        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
        private Date time;

        @JsonProperty(value = "OrderId")
        @ApiModelProperty(value = "订单ID")
        private Long orderId;

        @JsonProperty(value = "Status")
        @ApiModelProperty(value = "订单状态")
        private String status;

        @JsonProperty(value = "ArrivalDate")
        @ApiModelProperty(value = "入住日期")
        @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
        private Date arrivalDate;

        @JsonProperty(value = "DepartureDate")
        @ApiModelProperty(value = "离店日期")
        @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
        private Date departureDate;

        @JsonProperty(value = "TotalPrice")
        @ApiModelProperty(value = "总价")
        private BigDecimal totalPrice;

        @JsonProperty(value = "NumberOfRooms")
        @ApiModelProperty(value = "房间数量")
        private Integer numberOfRooms;

        @JsonProperty(value = "AffiliateConfirmationId")
        @ApiModelProperty(value = "合作伙伴从成单接口传入的订单号")
        private String affiliateConfirmationId;

        @JsonProperty(value = "AllRefundAmount")
        @ApiModelProperty(value = "订单退款")
        private BigDecimal allRefundAmount;

        @JsonProperty(value = "PayStatus")
        @ApiModelProperty(value = "支付状态")
        private Integer payStatus;

        @JsonProperty(value = "IsInstantConfirm")
        @ApiModelProperty(value = "是否即时确认")
        private Boolean isInstantConfirm;
    }
}
